#coding: utf-8
#!/usr/bin/env python
"""
Este código é um exemplo retirado do 
http://www.pythonbrasil.com.br/moin.cgi/ComparacaoDeGUIs

Tkinter

Baseada em Tcl/Tk, a Tkinter acompanha a distribuição 
oficial do interpretador Python. Muitos consideram a 
melhor coisa do mundo, outros vão gargalhar e dizer 
que é horrível, principalmente pela performance e 
aparência, mas vai continuar sendo a biblioteca 
padrão da linguagem Python por um bom tempo.

Licença: Python (permite escrever livremente 
softwares comerciais, GPL ou sob qualquer outra licença).
Plataformas: Unix, Linux, Windows, MacOS/X
Website: http://www.python.org/topics/tkinter/
Vantagens:

    * Portabilidade - Programas escritos usando 
a Tkinter são portáveis livremente entre Linux, 
Unix, Windows e Mac, além da garantia de que 
qualquer um poderá executar o programa sem 
precisar instalar bibliotecas extras.
    * Aprendizado - Tem uma API simples de se 
aprender e fácil de lembrar.
    * Documentação - Muito bem documentada, 
com inúmeros tutoriais e referências de ótima 
qualidade disponíveis na Web. 

Desvantagens:

    *Pobre - Faltam muitos componentes importantes, 
como notebooks e combo box (apesar de estes poderem 
ser feitos combinando outros componentes). Alguns 
elementos (listbox por exemplo) são incompletos ou 
limitados. Em compensação o componente Text é muito poderoso.
    * Aparência - A Tk usa uma função própria para 
acessar diretamente as funções do sistema operacional 
e desenhar seus próprios elementos na tela. Isso tem 
a vantagem de ser mais facilmente portável, mas a 
grande desvantagem de ter uma aparência diferente da 
nativa do sistema operacional. Pessoalmente, quando eu uso 
Tkinter me sinto 10 anos atrás, usando Windows 3.1 :). 
Existe um mecanismo que permite a personalização 
do visual dos componentes, mas as mudanças possíveis são poucas.
    * Performance - O desempenho é horrível tendo em vista 
o que a biblioteca oferece. 

"""
from Tkinter import *

class App:

    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", fg="red",
                         command=frame.quit)
        self.button.pack(side=LEFT)

        self.hi_there = Button(frame, text="Hello",
                           command=self.say_hi)
        self.hi_there.pack(side=LEFT)

    def say_hi(self):
        print "hi there, everyone!"

root = Tk()

app = App(root)

root.mainloop()

